//定义一个JS控制器 AMD require.js 模块化插件
//1、需要引入插件
//2、该控制器模块的业务逻辑
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form){
    // 定义一个控制器
    var Controller = {
        index:function(){

             //给选项卡绑定点击事件 切换选项卡的时候才会触发
             $(`a[data-toggle="tab"]`).on('shown.bs.tab', function(){
                var tab = $($(this).attr('href'))
                if(tab.length <= 0) return; //为空就停下

                //两个选项卡，分别给两个不同的请求方法
                //根据锚点切换，然后来触发选项卡的方法
                Controller.table[tab.attr('id')].call(this)
            })

            // 一进来就调用第一个选项卡的方法
            Controller.table['info']()

        },
        table:{
            info:function(){

            },
            visit:function(){
                var ids = Fast.api.query('ids');
                // 初始化表格参数
                // 配置整个表格中增删改查请求控制器的地址，用的ajax情求
                Table.api.init({
                   
                    
                });
                // 获取view视图中的dom元素
                var Visittable = $("#Visittable")

                // 渲染表格
                // $.ajax
                Visittable.bootstrapTable({
                    url:`business/businessinfo/visit?ids=${ids}`, //请求地址
                    toolbar:"#Visittoolbar", //工具栏
                    extend:{
                        add_url:`business/businessinfo/add?ids=${ids}`,
                        edit_url:'business/businessinfo/edit',
                        del_url:'business/businessinfo/del',
                        table:'business_visit'//表
                    },
                    pk:'id',//默认主键字段名
                    sortName:'visit.createtime', //排序字段名
                    sortOrder:'desc',//排序的方式
                    // 渲染的数据部分
                    columns:[
                        // 渲染的字段部分
                        {checkbox:true},
                        // operate通用搜索的操作符，sortable切换排序
                        {field:'id',title:'ID',operate:false,sortable:true},
                        {field:'business.nickname',title:__('BusinessNickname'),operate:'LIKE'},
                        {field:'content',title:__('VisitContent'),operate:false},
                        {field:'admin.username',title:__('AdminID'),operate:'LIKE'},
                        {
                            field:'createtime',
                            title:__('LastVisit'),
                            operate:'RANGE',
                            sortable:true,
                            addclass: 'datetimerange',
                            formatter:Table.api.formatter.datetime
                        },
                        // 最后一排操作按钮
                        {
                            field:'operate',
                            title:__('Operate'),
                            table:Visittable,
                            events:Table.api.events.operate,
                            formatter:Table.api.formatter.operate
                        }
                    ]
                });

                // 为表格绑定事件
                Table.api.bindevent(Visittable);
            },
            receive:function(){
                var ids = Fast.api.query('ids');
                // 初始化表格参数
                // 配置整个表格中增删改查请求控制器的地址，用的ajax情求
                Table.api.init({
                   
                    
                });
                // 获取view视图中的dom元素
                var Receivetable = $("#Receivetable")

                // 渲染表格
                // $.ajax
                Receivetable.bootstrapTable({
                    url:`business/businessinfo/receive?ids=${ids}`, //请求地址
                    toolbar:"#Receivetoolbar", //工具栏
                    extend:{
                        table:'business_receive'//表
                    },
                    pk:'id',//默认主键字段名
                    sortName:'receive.applytime', //排序字段名
                    sortOrder:'desc',//排序的方式
                    // 渲染的数据部分
                    columns:[
                        // 渲染的字段部分
                        {checkbox:true},
                        // operate通用搜索的操作符，sortable切换排序
                        {field:'id',title:'ID',operate:false,sortable:true},
                        {field:'admin.username',title:__('AdminID'),operate:'LIKE'},
                        {field:'status',title:__('Status'),operate:'LIKE'},
                        {field:'business.nickname',title:__('BusinessNickname'),operate:'LIKE'},
                        {
                            field:'applytime',
                            title:__('Applytime'),
                            operate:'RANGE',
                            sortable: true,
                            addclass: 'datetimerange',
                            formatter:Table.api.formatter.datetime
                        },
                        
                    ]
                });
                // 为表格绑定事件
                Table.api.bindevent(Receivetable);
            },
            record:function(){
                var ids = Fast.api.query('ids');
                // 初始化表格参数
                // 配置整个表格中增删改查请求控制器的地址，用的ajax情求
                Table.api.init({
                   
                    
                });
                // 获取view视图中的dom元素
                var Recordtable = $("#Recordtable")

                // 渲染表格
                // $.ajax
                Recordtable.bootstrapTable({
                    url:`business/businessinfo/record?ids=${ids}`, //请求地址
                    toolbar:"#Recordtoolbar", //工具栏
                    extend:{
                        table:'business_record'//表
                    },
                    pk:'id',//默认主键字段名
                    sortName:'record.createtime', //排序字段名
                    sortOrder:'desc',//排序的方式
                    // 渲染的数据部分
                    columns:[
                        // 渲染的字段部分
                        {checkbox:true},
                        // operate通用搜索的操作符，sortable切换排序
                        {field:'id',title:'ID',operate:false,sortable:true},
                        {field:'business.nickname',title:__('BusinessNickname'),operate:'LIKE'},
                        {field:'total',title:__('Total'),operate:false},
                        {field:'content',title:__('RecordContent'),operate:false},
                        {
                            field:'createtime',
                            title:__('RecordTime'),
                            operate:'RANGE',
                            sortable:true,
                            addclass: 'datetimerange',
                            formatter:Table.api.formatter.datetime
                        },
                    ]
                });

                // 为表格绑定事件
                Table.api.bindevent(Recordtable);
            },
            order:function(){
                var ids = Fast.api.query('ids');
                // 初始化表格参数
                // 配置整个表格中增删改查请求控制器的地址，用的ajax情求
                Table.api.init({
                   
                    extend:{
                        url: 'business/businessinfo/order',
                        table:'subject_order'//表
                    }
                });
                // 获取view视图中的dom元素
                var Ordertable = $("#Ordertable")

                // 渲染表格
                // $.ajax
                Ordertable.bootstrapTable({
                    url:`business/businessinfo/order?ids=${ids}`, //请求地址
                    toolbar:"#Ordertoolbar", //工具栏
                    extend:{
                        table:'subject_order'//表
                    },
                    pk:'id',//默认主键字段名
                    sortName:'order.createtime', //排序字段名
                    sortOrder:'desc',//排序的方式
                    // 渲染的数据部分
                    columns:[
                        // 渲染的字段部分
                        {checkbox:true},
                        // operate通用搜索的操作符，sortable切换排序
                        {field:'id',title:'ID',operate:false,sortable:true},
                        {field:'business.nickname',title:__('BusinessNickname'),operate:'LIKE'},
                        {field:'subject.title',title:__('SubjectTitle'),operate:'LIKE'},
                        {field:'total',title:__('OrderTotal'),operate:false},
                        {field:'code',title:__('OrderCode'),operate:'LIKE'},
                        {
                            field:'createtime',
                            title:__('OrderTime'),
                            operate:'RANGE',
                            sortable:true,
                            addclass: 'datetimerange',
                            formatter:Table.api.formatter.datetime
                        },
                    ]
                });

                // 为表格绑定事件
                Table.api.bindevent(Ordertable);
            }   
        },
        add: function () {
            Controller.api.bindevent();
        },
        edit: function () {
            Controller.api.bindevent();
        },
        del: function () {
            Controller.api.bindevent();
        },
        api: {
            //JS模块化的全局方法
            bindevent: function () 
            {
                Form.api.bindevent($("form[role=form]"));
            }
        }
    }

    return Controller
})